def twister = 'she sells sea shells at the sea shore of seychelles'

/* Este patron busca las palabra que empieza con 
s minuscula y termina con a minuscula */ 
// find operator usado como una expresion booleana
assert twister =~ /s.a/

// find operator devolvio un objeto de Matcher
def finder = (twister =~ /s.a/)
assert finder instanceof java.util.regex.Matcher

// El operador matcher tambien se evalua como un boolean
// twister debe contener solo palabras dilimitadas por un spacio
assert twister ==~ /(\w+ \w+)*/


// Ademas, tambien es devuelve una instancia de Boolean
def WORD =/\w+/
matches = (twister ==~ /($WORD $WORD)*/)
assert matches instanceof java.lang.Boolean

/* el mapeo tiene que ser completo, no como el 
finder operator que tiene mapeo parcial
*/ 
assert ( twister ==~ /s.e/ ) == false

// Este mapeo es completo con todo el string 
def twister2 = 'she'
assert ( twister2  ==~ /s.e/ ) == true

// reemplazamos
palablasPorX = twister.replaceAll(WORD, 'x')
assert palablasPorX == 'x x x x x x x x x x'

// partimos
palabras = twister.split(/ /);
assert palabras.size() == 10
assert palabras[0] == 'she'